from pynput.mouse import Listener, Button, Controller # pip install pynput

# 创建一个鼠标控制器对象（可选，用于模拟点击等）
mouse = Controller()

# 记录点击位置的列表
click_positions = []

def on_click(x, y, button, pressed):
    if pressed:
        print(f'{button} pressed at {x}, {y}')
        # 将点击位置（x, y）和按钮（button）添加到列表中
        click_positions.append((x, y, button))
        if button==Button.left: #保存左键按下的坐标
            with open('../1.txt', 'a', encoding='utf-8') as f:
                pos = f'({x},{y}),\n'
                f.write(pos)
                print(f'saved:{pos}')

    if not pressed:
        # 这里也可以处理鼠标释放事件，但通常我们只关心按下事件
        pass

def on_scroll(x, y, dx, dy):
    # 这里可以处理鼠标滚轮事件，但在这个示例中我们不需要它
    pass
# 创建一个监听器对象，绑定点击和滚轮事件的回调函数
with Listener(on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

# 当监听器停止时（通常是用户手动停止程序），输出或保存点击位置
for position in click_positions:
    print(position)
    # 如果需要，你可以将这些位置保存到文件或其他地方。
